Method Overloading এবং Method Overriding হল দুইটি গুরুত্বপূর্ণ কনসেপ্ট যা Polymorphism এর অধীনে কাজ করে।
- Method Overloading: এটি একই ক্লাসে একাধিক মেথডের ঘোষণা করা হয় যার সিগনেচার (method signature) আলাদা হয়, যেমন মেথডের নাম একই থাকে কিন্তু প্যারামিটার (parameter) ভিন্ন হয়।
- Method Overriding: এটি কেবল inheritance প্রক্রিয়ায় ঘটে। এটি superclass এর মেথডকে subclass তে পুনঃসংজ্ঞায়িত (redefine) করতে ব্যবহৃত হয়। এখানে মেথডের নাম, রিটার্ন টাইপ এবং প্যারামিটার অবশ্যই সমান থাকতে হবে।
1. Method Overloading (মেথড ওভারলোডিং)
Method Overloading হল একই মেথড নামের জন্য ভিন্ন ভিন্ন প্যারামিটার ব্যবহার করা। এটি রানটাইমের আগে কম্পাইল টাইমে ঘটে।
উদাহরণ: Method Overloading
class Calculator {
// মেথড ওভারলোডিং - দুটি পূর্ণসংখ্যার যোগফল
public int add(int a, int b) {
return a + b;
}
// মেথড ওভারলোডিং - তিনটি পূর্ণসংখ্যার যোগফল
public int add(int a, int b, int c) {
return a + b + c;
}
// মেথড ওভারলোডিং - দুটি দশমিক মানের যোগফল
public double add(double a, double b) {
return a + b;
}
}
public class MethodOverloadingExample {
public static void main(String[] args) {
Calculator calc = new Calculator();
// মেথড ওভারলোডিং কল
System.out.println("Sum of 2 numbers: " + calc.add(10, 20)); // প্যারামিটার (int, int)
System.out.println("Sum of 3 numbers: " + calc.add(10, 20, 30)); // প্যারামিটার (int, int, int)
System.out.println("Sum of 2 decimal numbers: " + calc.add(10.5, 20.5)); // প্যারামিটার (double, double)
}
}
আউটপুট:
Sum of 2 numbers: 30
Sum of 3 numbers: 60
Sum of 2 decimal numbers: 31.0
ব্যাখ্যা:
- এখানে
addনামক একাধিক মেথড রয়েছে, কিন্তু তাদের প্যারামিটার ভিন্ন। - প্যারামিটার অনুসারে সঠিক মেথডটি কল হবে।
2. Method Overriding (মেথড ওভাররাইডিং)
Method Overriding হল inheritance এর মধ্যে যেখানে subclass (পর্ণপ্রাপ্ত ক্লাস) তার superclass এর মেথডের আচরণ পরিবর্তন করে (redefine)।
উদাহরণ: Method Overriding
class Animal {
// Superclass মেথড
public void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
// Method Overriding: Subclass মেথড
@Override
public void sound() {
System.out.println("Dog barks");
}
}
public class MethodOverridingExample {
public static void main(String[] args) {
Animal animal = new Animal();
animal.sound(); // Animal এর মেথড কল হবে
Dog dog = new Dog();
dog.sound(); // Dog এর মেথড কল হবে
}
}
আউটপুট:
Animal makes a sound
Dog barks
ব্যাখ্যা:
Animalক্লাসে একটিsound()মেথড রয়েছে, যাDogক্লাসে override করা হয়েছে।@Overrideঅ্যানোটেশনটি ব্যবহার করা হয়েছে যা নিশ্চিত করে যে মেথডটি সঠিকভাবে override করা হচ্ছে।animal.sound();এAnimalক্লাসেরsound()মেথড কল হচ্ছে, এবংdog.sound();এDogক্লাসেরsound()মেথড কল হচ্ছে।
3. Method Overloading এবং Overriding এর পার্থক্য
| বিষয় | Method Overloading | Method Overriding |
|---|---|---|
| অবস্থান | একই ক্লাসে (Same Class) | superclass এবং subclass এর মধ্যে (Superclass and Subclass) |
| মেথড সিগনেচার | প্যারামিটার ভিন্ন হতে হবে (parameters must be different) | প্যারামিটার এবং রিটার্ন টাইপ একই থাকতে হবে (must have same parameters and return type) |
| কখন ঘটে | কম্পাইল টাইমে (Compile-time polymorphism) | রানটাইম টাইমে (Runtime polymorphism) |
| কিভাবে কাজ করে | একই নামের একাধিক মেথড, কিন্তু প্যারামিটার ভিন্ন (Same method name but different parameters) | superclass এর মেথডকে subclass এ override (Redefine the superclass method in subclass) |
- Method Overloading কম্পাইল টাইম polymorphism হিসাবে কাজ করে, যেখানে মেথডের নাম একই থাকে কিন্তু প্যারামিটার ভিন্ন হয়।
- Method Overriding রানটাইম polymorphism হিসাবে কাজ করে, যেখানে subclass superclass এর মেথডের আচরণ পরিবর্তন করে।
এই কনসেপ্টগুলি Java প্রোগ্রামিং এর গুরুত্বপূর্ণ অংশ এবং এগুলি ব্যবহার করে আরও শক্তিশালী এবং নমনীয় কোড লিখতে সাহায্য পাওয়া যায়।
Content added By
Read more